# -*- coding: utf-8 -*-
# @Time : 2021/7/25 10:03
# @Author : zy7y
# @Gitee : https://gitee.com/zy7y
# @File : conftest.py
# @Project : SeleniumPOM
from typing import Union

from webdriver_manager.chrome import ChromeDriverManager
from loguru import logger
import pytest
from selenium import webdriver

from Config import Config


# 使用 usefixtures 标记，每个测试方法的执行都需要 init_driver，就像您为每个测试方法指定一个“ init_driver”函数参数一样。
@pytest.fixture()
def init_driver(request) -> Union[webdriver.Chrome, None]:
    """
    初始化Driver方法，类级别，一个类调用一次
    :return: Chrome
    """
    # 自动下载匹配驱动, 一般是下载到 系统 盘 某个位置
    web_driver = webdriver.Chrome(
        executable_path=ChromeDriverManager().install())
    # web_driver.implicitly_wait(10)
    logger.error(request.__dir__)  # 如果想知道request参数里面的详细内容这里可以debug看看
    # 添加个类属性 driver
    request.cls.driver = web_driver
    yield
    web_driver.quit()  # 关闭所有窗口，并且安全关闭session
